package d5_regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTest05 {
    public static void main(String[] args) {
        //目标: 了解使用正则表达式去文本中爬取想要的信息。(分组爬取)
        //需求:把每个邮箱中的用户名爬取出来
        String data = "来黑马程序员学习Java，\n" +
                "电话：18512516758，18512508907\n" +
                "或者联系邮箱： boniu@itcast.cn\n" +
                "座机电话：01036517895，010-98951256\n" +
                "邮箱：bozai@itcast.cn，\n" +
                "邮箱2：dlei0009@163.com，\n" +
                "热线电话：400-618-9090 ，400-618-4000，\n" +
                "4006184000，4006189090\n";
        // 1、指定爬取规则对象: 设置匹配规则。
        Pattern pattern = Pattern.compile("(\\w{2,20})@\\w{2,20}(\\.\\w{2,20}){1,2}");
        //只要在匹配前面用户名的正则表达是加个括号,就可以进行分组爬取,获取信息的时候填上低级组就可以
        //2、让内容和爬取规则建立关系, 得到一个匹配器对象。
        Matcher matcher = pattern.matcher(data);

        //3、开始使用匹配器对象,开始爬取内容------>一个括号就是一组,从1开始递增,如果超过就会报索引越界异常
        while(matcher.find()){
            //把爬取的信息提取出来
            String rs = matcher.group(1);
            System.out.println(rs);
        }

    }
}
